package com.qi;

import java.util.Arrays;

/**
 * 插入排序 时间复杂度是O(n²) 空间复杂度1
 * <p>
 * 使用减治算法  f(n)=f(n-1)+F
 */
public class ChaRuPaiXu {

//    public static void insertSort(int[] array) {
//        for (int i = 1; i < array.length; i++) {
//            int insertValue = array[i];
//            int j = i - 1;
//            for (; (j >= 0) && (insertValue < array[j]); j--) {
//                array[j + 1] = array[j];
//            }
//            array[j + 1] = insertValue;
//        }
//    }
//
    public static void main(String[] args) {
        int[] array = new int[]{12, 1, 3, 36, 5};
        chaRuPaiXu(array);
        System.out.println(Arrays.toString(array));
    }


    public static void chaRuPaiXu(int[] array) {
        for (int i = 1; i < array.length; i++) {
            int insertValue = array[i];
            int j = i - 1;
            while (j >= 0 && insertValue < array[j]) {
                array[j + 1] = array[j];
                j--;
            }
            array[j + 1] = insertValue;
        }
    }


}
